恭喜大家順利完成第一階段的基礎訓練!從今天開始,我們正式進入第二階段。在召喚出終極抓包神器 Wireshark 之前,我們必須先搞懂網路世界溝通的「文法」——網路通訊協定與分層模型。
很多初學者一聽到 OSI 模型就想打瞌睡,但請相信我,了解這些分層,是未來你看懂 Wireshark 茫茫封包海的唯一鑰匙!
想像一下,如果你要寄一封實體信給國外的朋友,這封信會經歷:你寫信 👉 裝進信封寫地址 👉 郵差收件 👉 航空物流 👉 抵達對方郵局 👉 送到朋友手上。這是一個「分層分工」的過程,郵差不需要懂信件內容,物流機長也不需要知道寄件人是誰。
網路世界也是如此。為了讓不同廠商的設備(如蘋果的筆電、微軟的伺服器、思科的路由器)能夠互相溝通,國際標準化組織 (ISO) 制定了通用的標準,這就是網路分層模型。
目前最常被討論的模型有兩個:理論派的 OSI 模型,以及實務上真正被廣泛使用的 TCP/IP 模型。
它將網路通訊切分為非常精細的七層,由下而上分別是:
因為 OSI 切得太細,現實中有些層級的界線很模糊。因此,我們現在實際上使用的是簡化版的 TCP/IP 模型:
理論講完了,我們來點硬核的!身為網管與資安人員,我們可以直接透過終端機指令,來觀察這幾個層級的運作痕跡。
【實作練習】
如果你的 Ubuntu 顯示找不到 curl 指令,請先透過 sudo apt install curl 將其安裝起來。
接著打開終端機,我們由上而下,分別針對應用層、網路層、資料結連層下達探測指令:
# 1. 探測應用層 (Layer 7):取得網站 HTTP 標頭
curl -I [http://google.com](http://google.com)
# 2. 探測網路層 (Layer 3):透過 ICMP 協定驗證 IP 連線
ping -c 3 8.8.8.8
# 3. 探測資料結連層 (Layer 2):查看區域網路的 MAC 位址對應表
arp -a

畫面解析:
curl 印出了 HTTP/1.1 301 Moved Permanently 等標頭資訊,這就是應用層在解析網頁通訊協定。ping 成功將封包送到 8.8.8.8,展現了網路層跨網域尋找 IP 路由的能力。arp 列出了 IP 位址相對應的 ether (即 MAC 實體位址),揭露了封包在進入實體網線前,資料結連層是如何在區域網路內認人的!今天我們不僅理解了 OSI 與 TCP/IP 模型的理論,更透過實體指令,見證了封包在不同層級中的樣貌。當網路發生故障時,網管人員就是透過這套分層邏輯,一層一層(從實體網線有沒有插好,一路查到軟體服務有沒有啟動)來排除問題的。
我們今天一直提到傳輸層的 TCP 協定,它號稱是網路上「最可靠的快遞員」。明天 [Day 9],我們將深入拆解這個快遞員的必殺技——TCP 三方交握 (Three-way Handshake) 原理!我們明天見。